home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir24
/
bpq408.zip
/
WINBPQ.DOC
< prev
next >
Wrap
Text File
|
1994-11-05
|
5KB
|
183 lines
Using G8BPQ Switch with Windows Applications.
The BPQ Host mode interface cannot be used directly by Windows programs.
So I have written a couple of modules to allow WIndows applications to
access the switch. They are BPQCODE.386 and BPQDLL.DLL
BPQCODE.386
This is a Windows Virtual Device which converts calls from protected mode
software, eg Windows Applications, to real mode, and passes them to BPQCODE.
It will load automatically when Windows starts if you have already loaded
BPQCODE. It should be in the \WINDOWS\SYSTEM directory
BPQDLL.DLL
This module allows Windows applications to call the BPQ Host Mode API.
The API expects most parameters in CPU Registers. This is inconvenient in
high level languages, expecially Visual Basic. So BPQDLL uses pointers
to integers for these parameters.
The following are the function definitions. These map more or less directly
onto the corresponding API functions - see BPQHOST.DOC for full details of
the BPQHost API.
int FAR PASCAL GetFreeBuffs()
Returns number of free buffers (BPQHOST function 7 (part)).
int FAR PASCAL RXCount(int Stream)
Returns count of packets waiting on stream
(BPQHOST function 7 (part)).
int FAR PASCAL TXCount(int Stream)
Returns number of packets on TX queue for stream
(BPQHOST function 7 (part)).
int FAR PASCAL MONCount(int Stream)
Returns number of monitor frames available
(BPQHOST function 7 (part)).
int FAR PASCAL GetCallsign(int stream, LPSTR callsign)
Returns call connected on stream (BPQHOST function 8 (part)).
int FAR PASCAL SessionControl(int stream, int command, int param)
Send Session Control command (BPQHOST function 6)
int FAR PASCAL SetAppl(int stream, int flags, int mask)
Sets Application Mask and Flags for stream. (BPQHOST function 1)
int FAR PASCAL SessionState(int stream, LPSTR state, LPSTR change)
Get current Session State. Any state changed is ACK'ed
automatically. See BPQHOST functions 4 and 5.
int FAR PASCAL SendMsg(int stream, LPSTR msg, int len)
Send message go stream (BPQHOST Function 2)
int FAR PASCAL SendRaw(int port, LPSTR msg, int len)
Send RaW (KISS mode) frame to port (BPQHOST function 10)
int FAR PASCAL GetMsg(int stream, LPSTR msg, LPINT len, LPINT count )
Get message from stream. Returns length, and count of frames
still waiting to be collected. (BPQHOST function 3)
int FAR PASCAL GetRaw(int stream, LPSTR msg, LPINT len, LPINT count )
Get Raw (Trace) data (BPQHOST function 11)
int FAR PASCAL DecodeFrame(LPSTR msg, LPSTR buffer, int Stamp)
This is not an API function. It is a utility to decode a received
monitor frame into ascii text.
int FAR PASCAL SetTraceOptions(long mask, int mtxparam, int mcomparam)
Sets the tracing options for DecodeFrame. Mask is a bit
mask of ports to monitor (ie 101 binary will monitor ports
1 and 3). MTX enables monitoring on transmitted frames. MCOM
enables monitoring of protocol control frames (eg SABM, UA, RR),
as well as info frames.
int FAR PASCAL FindFreeStream()
Returns number of first unused BPQHOST stream. If none available,
returns 255. See API function 13.
int FAR PASCAL AllocateStream(int stream)
Allocate stream. If stream is already allocated, return nonzero.
Otherwise allocate stream, and return zero.
int FAR PASCAL DeallocateStream(int stream)
Release stream.
The following are Visual Basic function definitions for the above.
Declare Function getfreebuffs Lib "bpqdll" () As Integer
Declare Sub getcallsign Lib "bpqdlL.dll" (ByVal Stream As Integer,
ByVal callsign As String)
Declare Sub SessionControl Lib "bpqdll.dll" (ByVal Stream As Integer,
ByVal Commnd As Integer, ByVal Opt As Integer)
Declare Function SessionState Lib "bpqdll.dll" (ByVal Stream As Integer,
state As Integer, change As Integer) As Integer
Declare Function SendMsg Lib "bpqdll.dll" (ByVal Stream As Integer,
ByVal Msg As String, ByVal length As Integer) As Integer
Declare Function SendRaw Lib "bpqdll.dll" (ByVal port As Integer,
ByVal Msg As String, ByVal length As Integer) As Integer
Declare Function GetMsg Lib "bpqdll.dll" (ByVal Stream As Integer,
ByVal Msg As String, length As Integer, MORE As Integer) As Integer
Declare Function GetRAW Lib "bpqdll.dll" (ByVal Stream As Integer,
ByVal Msg As String, length As Integer, MORE As Integer) As Integer
Declare Function RXCount Lib "bpqdll.dll" (ByVal Stream As Integer) As Integer
Declare Function TXCount Lib "bpqdll.dll" (ByVal Stream As Integer) As Integer
Declare Function MONCount Lib "bpqdll.dll" (ByVal Stream As Integer) As Integer
Declare Sub SetAppl Lib "bpqdll.dll" (ByVal Stream As Integer,
ByVal Flags As Integer, ByVal mask As Integer)
Declare Function DecodeFrame Lib "bpqdll.dll" (ByVal inpmsg As String,
ByVal outputmsg As String, ByVal TIMES As Integer) As Integer
Declare Sub SetTraceOptions Lib "bpqdll.dll" (ByVal MMASK As Long,
ByVal MTX As Integer, ByVal MCOM As Integer)
Declare Function FindFreeStream Lib "bpqdll.dll" () As Integer
Declare Sub DeallocateStream Lib "bpqdll.dll" (ByVal Stream As Integer)
John Wiseman
1/10/94.
revised 5/11/94.